package com.xiyuan.smartutils.template.engine.expression.primitive;

import com.xiyuan.smartutils.template.engine.VariableMap;
import com.xiyuan.smartutils.template.engine.exception.ExpressionException;

/**
 * 字符串原型，格式为""或''之间的内容，注意转义字符
 *
 * @version v1.0.0 @author lgz 2020年11月1日 新建与整理
 */
public class _String extends Primitive
{
    private static final long serialVersionUID = 1L;
    private String value;
    
    public _String(String path,int line, int column, String value)
    {
        super(path, line, column);
        this.value = value;
    }
    
    @Override
    public int getType()
    {
        return STRING;
    }
    
    @Override
    public Object build(VariableMap variableMap) throws ExpressionException
    {
        return value.replaceAll("&#x7d;", "}");
    }
    
    @Override
    public String toString()
    {
        return new StringBuilder().append("\"").append(value).append("\"").toString();
    }
    
//    /** 对字符串作处理 */
//    private String processReplace(String str)
//    {
//        if (str == null)
//            return null;
//        
//        if (str.length() >= 2 && str.startsWith("\"") && str.endsWith("\""))
//        {//有双引号的两边删除
//            str = str.substring(1, str.length()-1);
//        }
//        else if (str.length() >= 2 && str.startsWith("\'") && str.endsWith("\'"))
//        {//有单引号的两边删除
//            str = str.substring(1, str.length()-1);
//        }
//        
//        //再对"}"和"/>"两种作替换
//        str = str.replaceAll("&sgt;", "/>");
//        str = str.replaceAll("&ccb;", "}");
//        
//        return str;
//    }
}
